class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxLength(vector<int>& arr) {
        int ret=-1;
        set<int>s;
        for(int left=0,right=0;right<arr.size();)
        {
            while(s.count(arr[right]))
            {
                //先收集答案
                ret=max(ret,right-left);
                //出窗口
                s.erase(arr[left++]);
            }
            //出窗口之后都是满足的区间也要收集结果
            s.insert(arr[right++]);

        }
        return ret==-1?arr.size():ret;
    }
};